/*
 * File Name：IndicateText.java
 * Copyright：Copyright 2008-2015 CiWong.Inc. All Rights Reserved.
 * Description： IndicateText.java
 * Modify By：res-jxliu
 * Modify Date：2015年3月21日
 * Modify Type：Add
 */
package com.ciwong.mobilelib.widget;



import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;


/**
 * 有指示的单选按钮(用于显示是否有消息)
 * 
 * @author res-jxliu
 * @version ciwong v.1.0 2015年3月21日
 * @since ciwong v.1.0
 */
public class IndicateText extends TextView
{
    private OnMeasuredListener mOnMeasuredListener;

    private final int maxNum = 99;

    /**
     * 有指示的单选按钮
     * 
     * @param context
     *            上下文
     */
    public IndicateText(Context context)
    {
        super(context);
    }

    /**
     * 
     * 有指示的单选按钮
     * 
     * @param context
     *            上下文
     * @param attrs
     *            属性
     */
    public IndicateText(Context context, AttributeSet attrs)
    {
        super(context, attrs);
    }

    /**
     * 
     * 有指示的单选按钮
     * 
     * @param context
     *            上下文
     * @param attrs
     *            属性
     * @param defStyle
     *            样式
     */
    public IndicateText(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
    }

    /**
     * 设置测量监听器
     * 
     * @param listener
     *            {@link OnMeasuredListener}
     */
    public void setOnMeasuredListener(OnMeasuredListener listener)
    {
        mOnMeasuredListener = listener;
    }

    /**
     * 获取测量监听
     * 
     * @return 测量监听
     */
    public OnMeasuredListener getmOnMeasuredListener()
    {
        return mOnMeasuredListener;
    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh)
    {
        // w = w > h ? w : h;
        if (mOnMeasuredListener != null)
        {
            mOnMeasuredListener.onMeasured(w, h);
        }
        // LayoutParams params = getLayoutParams();
        //
        // params.height = w;
        // params.width = w;
        // setLayoutParams(params);
    }

    @Override
    public void setText(CharSequence text, BufferType type)
    {

        // if (text != null)
        // {
        // if (text.length() > 1)
        // {
        // setBackgroundResource(R.drawable.indicator_long);
        // }
        // else
        // {
        // setBackgroundResource(R.drawable.indicator);
        // }
        // }
        if (text != null)
        {
            boolean isNum = text.toString().matches("[0-9]+");
            if (isNum)
            {
                int num = Integer.parseInt(text.toString());
                if (num > maxNum)
                {
                    super.setText(maxNum + "+", type);
                    return;
                }
            }
        }

        super.setText(text, type);
    }

    /**
     * 测量结束监听器
     * 
     * @author PLA-ZJLIU
     * 
     */
    public static interface OnMeasuredListener
    {
        /**
         * 测量结束监听方法
         * 
         * @param w
         *            宽度
         * @param h
         *            高度
         */
        void onMeasured(int w, int h);
    }
}
